<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <h1 data-lake-id="WMiwg" id="WMiwg"><span data-lake-id="ud0ce5ac1" id="ud0ce5ac1">典型回答</span></h1>
  <p data-lake-id="u620ec558" id="u620ec558"><span data-lake-id="u646bc269" id="u646bc269">ping是用来探测本机与网络中另一主机之间是否可达的命令，如果两台主机之间ping不通，则表明这两台主机不能建立起连接。利用ping命令可以检查网络是否通畅或者网络连接速度，很好地分析和判定网络故障。</span></p>
  <p data-lake-id="ub123787d" id="ub123787d"><span data-lake-id="u4ef137db" id="u4ef137db">​</span><br></p>
  <p data-lake-id="u26a7f89a" id="u26a7f89a"><span data-lake-id="ucfb08682" id="ucfb08682">ping的原理是基于ICMP（Internet Control Messages Protocol）来工作的，即因特网信报控制协议；</span></p>
  <p data-lake-id="ue53e28e9" id="ue53e28e9"><span data-lake-id="ue124345b" id="ue124345b">​</span><br></p>
  <p data-lake-id="u97cc0e7c" id="u97cc0e7c"><span data-lake-id="ub4765b53" id="ub4765b53">ping命令利用了ICMP两种类型的控制消息：“echo request”（回显请求）、“echo reply”（回显应答）。</span></p>
  <p data-lake-id="udf069936" id="udf069936"><span data-lake-id="u81fec337" id="u81fec337">​</span><br></p>
  <p data-lake-id="ucdeda415" id="ucdeda415"><span data-lake-id="u1cd19348" id="u1cd19348">在主机A上执行ping命令，目标主机是B。在A主机上就会发送“echo request”（回显请求）控制消息，主机B正确接收后即发回“echo reply”（回显应答）控制消息，通过对方回复的数据包来确定两台网络机器是否连接相通，时延是多少。</span></p>
  <p data-lake-id="uc6c97f72" id="uc6c97f72"><br></p>
  <p data-lake-id="uc8a2fe40" id="uc8a2fe40"><span data-lake-id="u67039a34" id="u67039a34">ping命令本身处于应用层，相当于一个应用程序。它使用的ICMP协议是一个网络层协议，也就是说，ping是一个应用层直接使用网络层协议的例子。像我们常见的HTTP协议是依赖的传输层协议TCP/UDP，而传输层的协议再依赖网络层的IP协议。</span></p>
  <p data-lake-id="ube1e6fb3" id="ube1e6fb3"><span data-lake-id="u38355160" id="u38355160">​</span><br></p>
 </body>
</html>